package cn.lg.soar.system.api.service;

import cn.lg.soar.system.api.model.AuthOrg;
import cn.lg.soar.system.api.model.OrgDTO;

import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

/**
 * @author luguoxiang
 * @date 2022/1/2
 * 开源项目：https://gitee.com/lgx1992/lg-soar 求star！请给我star！请帮我点个star！
 */
public interface IOrgApi {

    List<Long> idsByUserId(Long userId);

    List<OrgDTO> listByIds(List<Long> ids);

    OrgDTO getById(Long id);

    /**
     * 获取组织祖先链
     * @param id
     * @return
     */
    List<OrgDTO> ancestorLink(Long id);

    List<OrgDTO> listByUserId(Long userId);

    List<AuthOrg> userOrgList(Long userId);

    default Map<Long, OrgDTO> mapByIds(List<Long> ids) {
        return listByIds(ids).stream().collect(Collectors.toMap(OrgDTO::getId, x -> x));
    }

}
